﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace FanaticRock.MediaSource.BilibiliAPI.ResponseDto.Fav.Folder
{

    // https://api.bilibili.com/x/v3/fav/folder/info?media_id=188963361
    public class InfoResponseDto : BaseResponseDto
    {
        public class CntInfoDto
        {
            [JsonPropertyName("collect")]
            public long collect { get; set; }

            [JsonPropertyName("play")]
            public long play { get; set; }

            [JsonPropertyName("thumb_up")]
            public long thumb_up { get; set; }

            [JsonPropertyName("share")]
            public long share { get; set; }
        }
        public class UpperDto
        {
            [JsonPropertyName("mid")]
            public long mid { get; set; }

            [JsonPropertyName("name")]
            public string name { get; set; }

            [JsonPropertyName("face")]
            public string face { get; set; }

            [JsonPropertyName("followed")]
            public bool followed { get; set; }

            [JsonPropertyName("vip_type")]
            public int vip_type { get; set; }

            [JsonPropertyName("vip_statue")]
            public int vip_statue { get; set; }
        }
        public class DataDto
        {
            [JsonPropertyName("id")]
            public long Id { get; set; }

            [JsonPropertyName("fid")]
            public long FId { get; set; }

            [JsonPropertyName("mid")]
            public long MId { get; set; }

            //[JsonPropertyName("attr")]
            //public int attr { get; set; }

            [JsonPropertyName("title")]
            public string Title { get; set; }

            [JsonPropertyName("intro")]
            public string Intro { get; set; }

            [JsonPropertyName("cover")]
            public string Cover { get; set; }

            [JsonPropertyName("upper")]
            public UpperDto Upper { get; set; }

            //[JsonPropertyName("cover_type")]
            //public int cover_type { get; set; }

            [JsonPropertyName("cnt_info")]
            public CntInfoDto CurrentInfo { get; set; }

            //[JsonPropertyName("type")]
            //public int type { get; set; }


            //public int ctime { get; set; }
            //public int mtime { get; set; }
            //public int state { get; set; }
            //public int fav_state { get; set; }
            //public int like_state { get; set; }
            //public int media_count { get; set; }
        }

        [JsonPropertyName("data")]
        public DataDto Data { get; set; }

    }








}
